package homework;

import java.util.Scanner;

import org.junit.Test;

/**
 * (2)、求n的阶乘（用三种不同的循环实现,提示：先从键盘输入n的值）
 * @author 罗智壕-13424431416
 *
 * 2017年4月6日
 */
public class FunctionTest02 {
	@Test
	public void rideTest() throws Exception {
		ride();
	}
	
	/**
	 * 1.把用户输入的数字保存下来
	 * 2.然后循环比用户输入小的数
	 * 3.定义一个整型类型存放它们的阶乘
	 */
	public void ride(){
		Scanner scanner = new Scanner(System.in);
		System.out.println("输入整数，可以求出阶乘:");
		int data = scanner.nextInt();
		
		//定义一个类型存放它们的阶乘
		int sum = 1;
		//循环用户输入以下的数
		for(int i=1; i<=data; i++){
			//让它们进行相乘
			sum *= i;
		}
		System.out.println("阶乘总和为："+sum);
		//关闭
		scanner.close();
	}
	
	//while
	public void ride2(){
		Scanner scanner = new Scanner(System.in);
		System.out.println("输入整数，可以求出阶乘:");
		int data = scanner.nextInt();
		
		//定义一个类型存放它们的阶乘
		int sum = 1;
		
		int i = 1;
		//循环用户输入以下的数
		while(i<=data){
			//让它们进行相乘
			sum *= i;
			i++;
		}
		System.out.println("阶乘总和为："+sum);
		
		//关闭
		scanner.close();
	}
	
	//do while
	public void ride3(){
		Scanner scanner = new Scanner(System.in);
		System.out.println("输入整数，可以求出阶乘:");
		int data = scanner.nextInt();
		//定义一个类型存放它们的阶乘
		int sum = 1;
		
		int i = 1;
		do{
			//让它们进行相乘
			sum *= i;
			i++;
		//循环用户输入以下的数
		}while(i<=data);
		System.out.println("阶乘总和为："+sum);
		
		//关闭
		scanner.close();
	}
}
